import React from 'react';
import { PERM } from '../constants/permissions';

/**
 * @typedef { Object } IRoute - Интерфейс для роутинга страниц.
 * @property { PERM[] } - Массив с перечислением разрешений для роутинга.
 * @property { string } - Путь.
 * @property { { render: (PERM[]) => React.JSX.Element | React.JSX.Element[] } } route - Свойство,
 *  содержащее функция рендеринга компонентов React.
 * @property { (PERM[]) => React.JSX.Element | React.JSX.Element[] } render - Функция рендеринга
 *  компонентов React.
 * @property { { label: string; icon: React.JSX.Element} } element - Свойство содержит название и иконку 
 * для пункта меню Sidebar.
 * @property { string } label - Название пункта меню Sidebar.
 * @property { React.JSX.Element } icon - Иконка для пункта меню.
 */
export interface IRoute {
    allowed: PERM[];
    path: string;
    route: {
        render: () => React.JSX.Element | React.JSX.Element[];
    },
    element: {
        label: string;
        icon: React.JSX.Element;
    }
}